/**************************************
 *
 * VLOOK™ CSS 字体主题、圆角样式
 * (配合 base.less 进行使用)
 *
 * V28.1
 * 2025-01-18
 * powered by MAX°孟兆
 *
 * QQ Group: 805502564
 * Telegram Channel: t.me/vlook_markdown
 * email: maxchow@qq.com
 *
 * https://github.com/MadMaxChow/VLOOK
 * https://gitee.com/madmaxchow/VLOOK
 *
 *************************************/

@fontSize: 1em;
@fontSizePx: 16px;

// Rangs of font-weight:
//   100 - Thin
//   200 - Extra Light (Ultra Light)
//   300 - Light
//   400 - Regular (Normal、Book、Roman)
//   500 - Medium
//   600 - Semi Bold (Demi Bold)
//   700 - Bold
//   800 - Extra Bold (Ultra Bold)
//   900 - Black (Heavy)

@font-face {
    font-family: "color-emoji";
    src: local("Apple Color Emoji"),
         local("Segoe UI Emoji"),
         local("Segoe UI Symbol"),
         local("Noto Color Emoji");
    // 适用的编码范围
    unicode-range: U+203C-203C, U+2049-2049, U+2139-2139, U+2194-2199, U+21A9-21AA, U+231A-231B, U+2328-2328, U+23CF-23CF, U+23E9-23F3, U+23F8-23FA, U+24C2-24C2, U+25AA-25AB, U+25B6-25B6, U+25C0-25C0, U+25FB-25FE, U+2600-2604, U+260E-260E, U+2611-2611, U+2614-2615, U+2618-2618, U+261D-261D, U+2620-2620, U+2622-2623, U+2626-2626, U+262A-262A, U+262E-262F, U+2638-263A, U+2640-2640, U+2642-2642, U+2648-2653, U+265F-2660, U+2663-2663, U+2665-2666, U+2668-2668, U+267B-267B, U+267E-267F, U+2692-2697, U+2699-2699, U+269B-269C, U+26A0-26A1, U+26A7-26A7, U+26AA-26AB, U+26B0-26B1, U+26BD-26BE, U+26C4-26C5, U+26C8-26C8, U+26CE-26CF, U+26D1-26D1, U+26D3-26D4, U+26E9-26EA, U+26F0-26F5, U+26F7-26FA, U+26FD-26FD, U+2702-2702, U+2705-2705, U+2708-270D, U+270F-270F, U+2712-2712, U+2714-2714, U+2716-2716, U+271D-271D, U+2721-2721, U+2728-2728, U+2733-2734, U+2744-2744, U+2747-2747, U+274C-274C, U+274E-274E, U+2753-2755, U+2757-2757, U+2763-2764, U+2795-2797, U+27A1-27A1, U+27B0-27B0, U+27BF-27BF, U+2934-2935, U+2B05-2B07, U+2B1B-2B1C, U+2B50-2B50, U+2B55-2B55, U+3030-3030, U+303D-303D, U+3297-3297, U+3299-3299, U+1F000-1FAFF;
    // U+00A9-00A9, U+00AE-00AE, U+2122-2122,
    // 参考链接：
    // https://unicode-table.com/cn/blocks/mahjong-tiles/
    // ...
    // https://unicode-table.com/cn/blocks/miscellaneous-technical/
}

// 定义 Digital 字体适用的编码范围
@unicodeRangeForDigital:
U+0021-002F, // !"#$%&'()*+,-./（不含空格）
U+003A-0040, // :;<=>?@
U+005B-0060, // [\]^_`
U+007B-007E, // {|}~
U+0030-0039; // 0123456789

// ----------------------------------------
// 定义 VDS-CSS local
@font-face { // - Regular
    font-family: "VLOOK Digital local";
    font-weight: normal;
    src: local("SF Mono Regular"), local("Menlo Regular"), local("Cascadia Mono Regular"), local("Consolas");
    unicode-range: @unicodeRangeForDigital;
}
@font-face { // - Bold
    font-family: "VLOOK Digital local";
    font-weight: bold;
    src: local("SF Mono Bold"), local("Menlo Bold"), local("Cascadia Mono Bold"), local("Consolas Bold");
    // 适用的编码范围
    unicode-range: @unicodeRangeForDigital;
}

// ----------------------------------------
@vlookDigitalLocal: "VLOOK Digital local";
@vlookDigitalSans: "VLOOK Digital Sans", @vlookDigitalLocal;
@vlookDigitalSerif: "VLOOK Digital Serif", @vlookDigitalLocal;

// =========================================
// 基础字体信息
// -----------------------------------------
// 定义 Emoji / symbol 等符号字体
@emoji: "color-emoji";
// 基础等宽字体
@base_mono: Courier, "Courier New";
// 数值字体
@number_font: "VLOOK Number", "Altinn-DIN", "DIN", "DIN Alternate";
// 基础非衬线字体
@base_sans_en: Arial, Tahoma, "Helvetica Neue", Helvetica;
@base_sans_cn: "Heiti SC", "黑体-简", SimHei, "黑体";
@mono_local_en: "SF Mono", Menlo, "Cascadia Mono", Consolas, @base_mono;
@mono_macos_en: "SF Mono", Menlo, @base_mono;
@mono_win_en: "Cascadia Mono", Consolas, @base_mono;
// "JetBrains Mono" 用于 YiKuan 定制主题用
@base_mono_sans_en: "VLOOK Sans Mono", "Noto Sans Mono", @mono_local_en;
@base_mono_macos_en: "VLOOK Sans Mono", "Noto Sans Mono", @mono_macos_en;
@base_mono_win_en: "VLOOK Sans Mono", "Noto Sans Mono", @mono_win_en;
// 基础衬线字体
@base_serif_en: "Times New Roman", Times, Georgia;
@base_serif_en2: Georgia, "Times New Roman", Times;
@base_serif_cn: "Songti SC", "宋体-简", SimSun, "宋体";
@base_mono_serif_en: "VLOOK Serif Mono", "Luxi Mono", "PT Mono", @base_mono, @base_mono_sans_en;
// 自定义字体主题集
@base_gov_kaiti_sets: "Kaiti SC", "Kaiti TC", KaiTi, "楷体", Kai, "KaiTi_GB2312", "楷体_GB2312", STKaiti, "华文楷体";
@base_gov_fangsong_sets: STFangsong, "华文仿宋", FangSong, "仿宋", "华文中宋", "FangSong_GB2312", "仿宋_GB2312";
@base_noto_sans_sets: "Noto Sans CJK SC", "Noto Sans CJK HK", "Noto Sans CJK TW";
@base_noto_serif_sets: "Noto Serif CJK SC", "Noto Serif CJK HK", "Noto Serif CJK TW";
@base_albb_dt_jinbu_sets: "DingTalk Sans", "DingTalk JinBuTi";
@base_albb_puhui_sets: "Alibaba PuHuiTi 3.0", "Alibaba PuHuiTi 2.0", "Alibaba PuHuiTi";
@base_source_sans_sets: "";//"思源黑体", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans HK", "Source Han Sans HC", "Source Han Sans TW", "Source Han Sans TC";
@base_source_serif_sets: "";//"思源宋体", "Source Han Serif SC", "Source Han Serif CN", "Source Han Serif HK", "Source Han Serif HC", "Source Han Serif TW", "Source Han Serif TC";

// 在主题中优先使用的等宽字体
@themeMonoFont: "";

// =========================================
// 系统本地默认字体信息
// ----------------------------------------
// 定义 Apple SF PingFang 苹方
@apple_sf: "SF Pro Text", "SF Pro Display", "PingFang SC", "PingFang TC", "PingFang HK";
// 定义 Microsoft YaHei 微软雅黑
@ms_yh: "Segoe UI", SegoeUI, "Microsoft YaHei", "微软雅黑", @base_sans_cn;
@ms_yh_mono: @base_mono_macos_en, @ms_yh, monospace;
@ms_yh_fw_bold: bold;
@ms_yh_fw_text: normal;
// 定义 Microsoft JhengHei 微軟正黑體
@ms_jh: "Microsoft JhengHei", "微軟正黑體", @base_sans_cn;
@msjh_mono: @base_mono_macos_en, @ms_jh, monospace;
// ---
// 2024/4: HarmonyOS Sans SC 在 macOS 14.x Typora 编辑时光标定位有问题
// @localFont: "HarmonyOS Sans SC", "MiSans VF", "OPlus Sans SC", -apple-system, Roboto, @apple_sf, @ms_yh, @ms_jh;
// @localFont: -apple-system, Roboto, @apple_sf, @ms_yh, @ms_jh;
@localFont: -apple-system, Roboto, @apple_sf, @ms_yh, @ms_jh;
@monoLocalFont: @mono_local_en, @localFont, @base_sans_cn, monospace;
@fontBoldWeight4Local: @ms_yh_fw_bold;
@fontBoldWeight4LocalText: @ms_yh_fw_text;

//=========================================
// 定义 macOS 风格字体信息
// ----------------------------------------
@macosFont: -apple-system, Roboto, @apple_sf;
@macosMono: @mono_macos_en, @macosFont, @base_sans_cn, monospace;
@fontBoldWeight4Macos: @ms_yh_fw_bold;
@fontBoldWeight4MacosText: @ms_yh_fw_text;

//=========================================
// 定义 Windwos 风格字体信息
// ----------------------------------------
@winFont: @ms_yh, @ms_jh;
@winMono: @mono_win_en, @winFont, @base_sans_cn, monospace;
@fontBoldWeight4Win: @ms_yh_fw_bold;
@fontBoldWeight4WinText: @ms_yh_fw_text;

//=========================================
// 定义 Book 书香里 风格字体信息
// ----------------------------------------
// 宋体 + 黑体
@cross_book_serif: @base_serif_en, @base_serif_cn, serif;
@cross_book_bold: @base_sans_en, @base_sans_cn, sans-serif;
@cross_book_title: @base_sans_en, @base_sans_cn, sans-serif;
@cross_book_header: @base_sans_en, @base_sans_cn, sans-serif;
@cross_book_mono: @base_mono, @base_sans_en, @base_sans_cn, monospace;
@cross_book_fw_bold: bold;
@cross_book_fw_title: bold;
@cross_book_fw_text: normal;
// ---
@bookFont: @cross_book_serif;
@bookBoldFont: @cross_book_bold;
@bookTitle: @cross_book_title;
@bookHeader: @cross_book_header;
@bookMono: @cross_book_mono;
@fontBoldWeight4Book: @cross_book_fw_bold;
@fontBoldWeight4BookTitle: @cross_book_fw_title;
@fontBoldWeight4BookText: @cross_book_fw_text;

//=========================================
// 定义 Gov 公文风 风格字体信息
// ----------------------------------------
// 楷体 + 仿体 + 黑体
@cross_gov_serif: @base_serif_en2, @base_gov_fangsong_sets, @base_serif_cn, serif;
@cross_gov_bold: @base_sans_en, @base_sans_cn, sans-serif;
@cross_gov_title: @base_serif_en2, @base_gov_kaiti_sets, @base_serif_cn, sans-serif;
@cross_gov_header: @cross_gov_title;
@cross_gov_mono: @mono_local_en, @base_mono, @base_sans_en, @base_sans_cn, monospace;
@cross_gov_fw_bold: normal;
@cross_gov_fw_title: normal;
@cross_gov_fw_text: normal;
// ---
@govFont: @cross_gov_serif;
@govBoldFont: @cross_gov_bold;
@govTitle: @cross_gov_title;
@govHeader: @cross_gov_header;
@govMono: @cross_gov_mono;
@fontBoldWeight4Gov: @cross_gov_fw_bold;
@fontBoldWeight4GovTitle: @cross_gov_fw_title;
@fontBoldWeight4GovText: @cross_gov_fw_text;

//=========================================
// 定义 Sans 小清新 风格字体信息
// ----------------------------------------
// 思源黑体
@noto: "VLOOK Sans", @base_noto_sans_sets, @base_source_sans_sets, @apple_sf, @ms_yh, @ms_jh, @base_sans_cn, sans-serif;
@noto_mono: @base_mono_sans_en, "VLOOK Sans", @base_noto_sans_sets, @base_source_sans_sets, @apple_sf, @ms_yh_mono, @msjh_mono, @base_sans_cn, monospace;
@noto_fw_bold: bold;
@noto_fw_text: normal;
// ---
@sansFont: @noto;
@sansMono: @noto_mono;
@fontBoldWeight4Sans: @noto_fw_bold;
@fontBoldWeight4SansText: @noto_fw_text;

//=========================================
// 定义 Serif 文艺范 风格字体信息
// ----------------------------------------
// 思源宋体 + 思源黑体
@cross_noto_serif: "VLOOK Serif", @base_noto_serif_sets, @base_source_serif_sets, @base_serif_en, @base_serif_cn, serif;
@cross_noto_bold: "VLOOK Sans", @base_noto_sans_sets, @base_source_sans_sets, @localFont, @base_sans_en, @base_sans_cn, sans-serif;
@cross_noto_title: @cross_noto_serif;
@cross_noto_header: @cross_noto_serif;
@cross_noto_mono: @base_mono_serif_en, "VLOOK Serif", @base_noto_serif_sets, @base_source_serif_sets, @base_serif_en, @base_serif_cn, monospace;
@cross_noto_fw_bold: bold;
@cross_noto_fw_title: 900;
@cross_noto_fw_text: 500;
// ---
@serifFont: @cross_noto_serif;
@serifBoldFont: @cross_noto_bold;
@serifTitle: @cross_noto_title;
@serifHeader: @cross_noto_header;
@serifMono: @cross_noto_mono;
@fontBoldWeight4Serif: @cross_noto_fw_bold;
@fontBoldWeight4SerifTitle: @cross_noto_fw_title;
@fontBoldWeight4SerifText: @cross_noto_fw_text;

//=========================================
// 定义 Albb 活力派 风格字体信息
// ----------------------------------------
// 钉钉进步体 + 阿里普惠体
@albb: "VLOOK Albb", @base_albb_puhui_sets, @apple_sf, @ms_yh, @ms_jh, @base_sans_cn, sans-serif;
@albb_title: "VLOOK Albb DT-Sans", "VLOOK Albb DT-JinBu", @base_albb_dt_jinbu_sets, @apple_sf, @ms_yh, @ms_jh, @base_sans_cn, sans-serif;
@albb_header: @albb_title;
@albb_mono: @base_mono_sans_en, "VLOOK Albb", @apple_sf, @ms_yh_mono, @msjh_mono, @base_sans_cn, monospace;
@albb_fw_bold: bold;
@albb_fw_title: normal;
@albb_fw_text: normal;
// ---
@albbFont: @albb;
@albbTitle: @albb_title;
@albbHeader: @albb_header;
@albbMono: @sansMono;
@fontBoldWeight4Albb: @albb_fw_bold;
@fontBoldWeight4AlbbTitle: @albb_fw_title;
@fontBoldWeight4AlbbText: @albb_fw_text;

//=========================================
// 不同字体风格配置集
:root {
    // ---
    // 定义 local 系统默认 风格：系统本地默认字体 OS default
    --v-f-fm-title-local: @emoji, @localFont;
    --v-f-fm-subtitle-local: @emoji, @localFont;
    --v-f-fm-h-local: @emoji, @localFont;
    --v-f-fm-text-local: @emoji, @vlookDigitalLocal, @localFont;
    --v-f-fm-bd-local: @emoji, @vlookDigitalLocal, @localFont;
    --v-f-fm-key-local: @localFont;
    --v-f-fm-num-local: @emoji, @number_font, @base_mono_sans_en, @localFont;
    --v-f-fm-tag-local: @emoji, @localFont;
    --v-f-fm-code-local: @monoLocalFont;
    --v-f-w-bd-local: @fontBoldWeight4Local;
    --v-f-w-title-local: @fontBoldWeight4Local;
    --v-f-w-text-local: @fontBoldWeight4LocalText;

    // ---
    // 定义 local 系统默认 风格：for macOS
    --v-f-fm-title-macos: @emoji, @macosFont;
    --v-f-fm-subtitle-macos: @emoji, @macosFont;
    --v-f-fm-h-macos: @emoji, @macosFont;
    --v-f-fm-text-macos: @emoji, @vlookDigitalSans, @macosFont;
    --v-f-fm-bd-macos: @emoji, @vlookDigitalSans, @macosFont;
    --v-f-fm-key-macos: @macosFont;
    --v-f-fm-num-macos: @emoji, @number_font, @base_mono_sans_en, @macosFont;
    --v-f-fm-tag-macos: @emoji, @localFont;
    --v-f-fm-code-macos: @macosMono;
    --v-f-w-bd-macos: @fontBoldWeight4Macos;
    --v-f-w-title-macos: @fontBoldWeight4Macos;
    --v-f-w-text-macos: @fontBoldWeight4MacosText;

    // ---
    // 定义 local 系统默认 风格：for Windows
    --v-f-fm-title-win: @emoji, @winFont;
    --v-f-fm-subtitle-win: @emoji, @winFont;
    --v-f-fm-h-win: @emoji, @winFont;
    --v-f-fm-text-win: @emoji, @vlookDigitalSans, @winFont;
    --v-f-fm-bd-win: @emoji, @vlookDigitalSans, @winFont;
    --v-f-fm-key-win: @winFont;
    --v-f-fm-num-win: @emoji, @number_font, @base_mono_sans_en, @winFont;
    --v-f-fm-tag-win: @emoji, @localFont;
    --v-f-fm-code-win: @winMono;
    --v-f-w-bd-win: @fontBoldWeight4Win;
    --v-f-w-title-win: @fontBoldWeight4Win;
    --v-f-w-text-win: @fontBoldWeight4WinText;

    // ---
    // 定义 Book 书香里 风格：宋体 + 黑体
    --v-f-fm-title-book: @emoji, @bookTitle;
    --v-f-fm-subtitle-book: @emoji, @bookBoldFont;
    --v-f-fm-h-book: @emoji, @bookHeader;
    --v-f-fm-text-book: @emoji, @bookFont;
    --v-f-fm-bd-book: @emoji, @bookBoldFont;
    --v-f-fm-key-book: @bookBoldFont;
    --v-f-fm-num-book: @emoji, @number_font, @base_mono_sans_en, @sansFont;
    --v-f-fm-tag-book: @emoji, @bookBoldFont;
    --v-f-fm-code-book: @bookMono;
    --v-f-w-bd-book: @fontBoldWeight4Book;
    --v-f-w-title-book: @fontBoldWeight4BookTitle;
    --v-f-w-text-book: @fontBoldWeight4BookText;

    // ---
    // 定义 Gov 公文风 风格：楷体 + 仿宋 + 黑体
    --v-f-fm-title-gov: @emoji, @govTitle;
    --v-f-fm-subtitle-gov: @emoji, @govBoldFont;
    --v-f-fm-h-gov: @emoji, @govHeader;
    --v-f-fm-text-gov: @emoji, @govFont;
    --v-f-fm-bd-gov: @emoji, @govBoldFont;
    --v-f-fm-key-gov: @govBoldFont;
    --v-f-fm-num-gov: @emoji, @number_font, @base_mono_sans_en, @sansFont;
    --v-f-fm-tag-gov: @emoji, @govBoldFont;
    --v-f-fm-code-gov: @govMono;
    --v-f-w-bd-gov: @fontBoldWeight4Gov;
    --v-f-w-title-gov: @fontBoldWeight4GovTitle;
    --v-f-w-text-gov: @fontBoldWeight4GovText;

    // ---
    // 定义 Sans 小清新 风格：非衬线风格 Noto Sans
    --v-f-fm-title-sans: @emoji, @sansFont;
    --v-f-fm-subtitle-sans: @emoji, @sansFont;
    --v-f-fm-h-sans: @emoji, @sansFont;
    --v-f-fm-text-sans: @emoji, @vlookDigitalSans, @sansFont;
    --v-f-fm-bd-sans: @emoji, @vlookDigitalSans, @sansFont;
    --v-f-fm-key-sans: @sansFont;
    --v-f-fm-num-sans: @emoji, @number_font, @base_mono_sans_en, @sansFont;
    --v-f-fm-tag-sans: @emoji, @sansFont;
    --v-f-fm-code-sans: @sansMono;
    --v-f-w-bd-sans: @fontBoldWeight4Sans;
    --v-f-w-title-sans: @fontBoldWeight4Sans;
    --v-f-w-text-sans: @fontBoldWeight4SansText;

    // ---
    // 定义 Serif 文艺范 风格：衬线+非衬线混排 Serif + Sans
    --v-f-fm-title-serif: @emoji, @serifTitle;
    --v-f-fm-subtitle-serif: @emoji, @serifBoldFont;
    --v-f-fm-h-serif: @emoji, @serifHeader;
    --v-f-fm-text-serif: @emoji, @vlookDigitalSerif, @serifFont;
    --v-f-fm-bd-serif: @emoji, @vlookDigitalSans, @serifBoldFont;
    --v-f-fm-key-serif: @serifBoldFont;
    --v-f-fm-num-serif: @emoji, @number_font, @base_mono_sans_en, @sansFont;
    --v-f-fm-tag-serif: @emoji, @serifBoldFont;
    --v-f-fm-code-serif: @serifMono;
    --v-f-w-bd-serif: @fontBoldWeight4Serif;
    --v-f-w-title-serif: @fontBoldWeight4SerifTitle;
    --v-f-w-text-serif: @fontBoldWeight4SerifText;

    // ---
    // 定义 Albb 活力派 风格：钉钉进步体 + 阿里普惠体
    --v-f-fm-title-albb: @emoji, @albbTitle;
    --v-f-fm-subtitle-albb: @emoji, @albbFont;
    --v-f-fm-h-albb: @emoji, @albbHeader;
    --v-f-fm-text-albb: @emoji, @albbFont;
    --v-f-fm-bd-albb: @emoji, @albbFont;
    --v-f-fm-key-albb: @albbFont;
    --v-f-fm-num-albb: @emoji, @number_font, @base_mono_sans_en, @sansFont;
    --v-f-fm-tag-albb: @emoji, @albbFont;
    --v-f-fm-code-albb: @albbMono;
    --v-f-w-bd-albb: @fontBoldWeight4Albb;
    --v-f-w-title-albb: @fontBoldWeight4AlbbTitle;
    --v-f-w-text-albb: @fontBoldWeight4AlbbText;
}

// ---
// 应用 local 风格（自动适配）
.applyFontStyle(@fontStyle) when (@fontStyle = local) {
    :root {
        --v-f-style: local; // 设置为默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-local);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-local);
        --v-f-fm-h: var(--v-f-fm-h-local);
        --v-f-fm-text: var(--v-f-fm-text-local);
        --v-f-fm-bd: var(--v-f-fm-bd-local);
        --v-f-fm-key: var(--v-f-fm-key-local);
        --v-f-fm-num: var(--v-f-fm-num-local);
        --v-f-fm-tag: var(--v-f-fm-tag-local);
        --v-f-fm-code: var(--v-f-fm-code-local);
        --v-f-w-bd: var(--v-f-w-bd-local);
        --v-f-w-title: var(--v-f-w-title-local);
        --v-f-w-text: var(--v-f-w-text-local);
    }

    .genVlookNumber();
}
// ---
// 应用 local - 强制为 macOS
.applyFontStyle(@fontStyle) when (@fontStyle = macos) {
    :root {
        --v-f-style: local; // 设置为默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-macos);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-macos);
        --v-f-fm-h: var(--v-f-fm-h-macos);
        --v-f-fm-text: var(--v-f-fm-text-macos);
        --v-f-fm-bd: var(--v-f-fm-bd-macos);
        --v-f-fm-key: var(--v-f-fm-key-macos);
        --v-f-fm-num: var(--v-f-fm-num-macos);
        --v-f-fm-tag: var(--v-f-fm-tag-macos);
        --v-f-fm-code: var(--v-f-fm-code-macos);
        --v-f-w-bd: var(--v-f-w-bd-macos);
        --v-f-w-title: var(--v-f-w-title-macos);
        --v-f-w-text: var(--v-f-w-text-macos);
    }

    .genVlookNumber();
}
// ---
// 应用 local - 强制为 Windows
.applyFontStyle(@fontStyle) when (@fontStyle = win) {
    :root {
        --v-f-style: local; // 设置为默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-win);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-win);
        --v-f-fm-h: var(--v-f-fm-h-win);
        --v-f-fm-text: var(--v-f-fm-text-win);
        --v-f-fm-bd: var(--v-f-fm-bd-win);
        --v-f-fm-key: var(--v-f-fm-key-win);
        --v-f-fm-num: var(--v-f-fm-num-win);
        --v-f-fm-tag: var(--v-f-fm-tag-win);
        --v-f-fm-code: var(--v-f-fm-code-win);
        --v-f-w-bd: var(--v-f-w-bd-win);
        --v-f-w-title: var(--v-f-w-title-win);
        --v-f-w-text: var(--v-f-w-text-win);
    }

    .genVlookNumber();
}
// ---
// 应用 Book 风格
.applyFontStyle(@fontStyle) when (@fontStyle = book) {
    :root {
        --v-f-style: book; // 设置为默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-book);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-book);
        --v-f-fm-h: var(--v-f-fm-h-book);
        --v-f-fm-text: var(--v-f-fm-text-book);
        --v-f-fm-bd: var(--v-f-fm-bd-book);
        --v-f-fm-key: var(--v-f-fm-key-book);
        --v-f-fm-num: var(--v-f-fm-num-book);
        --v-f-fm-tag: var(--v-f-fm-tag-book);
        --v-f-fm-code: var(--v-f-fm-code-book);
        --v-f-w-bd: var(--v-f-w-bd-book);
        --v-f-w-title: var(--v-f-w-title-book);
        --v-f-w-text: var(--v-f-w-text-book);
    }
}
// ---
// 应用 Gov 风格
.applyFontStyle(@fontStyle) when (@fontStyle = gov) {
    :root {
        --v-f-style: gov; // 设置为默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-gov);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-gov);
        --v-f-fm-h: var(--v-f-fm-h-gov);
        --v-f-fm-text: var(--v-f-fm-text-gov);
        --v-f-fm-bd: var(--v-f-fm-bd-gov);
        --v-f-fm-key: var(--v-f-fm-key-gov);
        --v-f-fm-num: var(--v-f-fm-num-gov);
        --v-f-fm-tag: var(--v-f-fm-tag-gov);
        --v-f-fm-code: var(--v-f-fm-code-gov);
        --v-f-w-bd: var(--v-f-w-bd-gov);
        --v-f-w-title: var(--v-f-w-title-gov);
        --v-f-w-text: var(--v-f-w-text-gov);
    }
}
// ---
// 应用 Sans 风格
.applyFontStyle(@fontStyle) when (@fontStyle = sans) {
    :root {
        --v-f-style: sans; // 设置为默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-sans);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-sans);
        --v-f-fm-h: var(--v-f-fm-h-sans);
        --v-f-fm-text: var(--v-f-fm-text-sans);
        --v-f-fm-bd: var(--v-f-fm-bd-sans);
        --v-f-fm-key: var(--v-f-fm-key-sans);
        --v-f-fm-num: var(--v-f-fm-num-sans);
        --v-f-fm-tag: var(--v-f-fm-tag-sans);
        --v-f-fm-code: var(--v-f-fm-code-sans);
        --v-f-w-bd: var(--v-f-w-bd-sans);
        --v-f-w-title: var(--v-f-w-title-sans);
        --v-f-w-text: var(--v-f-w-text-sans);
    }

    .genVlookNumber();

    .genVlookDigitalSans();
    .genVlookSans();
    .genVlookSansMono();
}
// ---
// 应用 Serif 风格
.applyFontStyle(@fontStyle) when (@fontStyle = serif) {
    :root {
        --v-f-style: serif; // 设置为默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-serif);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-serif);
        --v-f-fm-h: var(--v-f-fm-h-serif);
        --v-f-fm-text: var(--v-f-fm-text-serif);
        --v-f-fm-bd: var(--v-f-fm-bd-serif);
        --v-f-fm-key: var(--v-f-fm-key-serif);
        --v-f-fm-num: var(--v-f-fm-num-serif);
        --v-f-fm-tag: var(--v-f-fm-tag-serif);
        --v-f-fm-code: var(--v-f-fm-code-serif);
        --v-f-w-bd: var(--v-f-w-bd-serif);
        --v-f-w-title: var(--v-f-w-title-serif);
        --v-f-w-text: var(--v-f-w-text-serif);
    }

    .genVlookNumber();

    .genVlookDigitalSans();
    .genVlookSans();
    .genVlookSansMono();

    .genVlookDigitalSerif();
    .genVlookSerif();
    .genVlookSerifMono();
}
// ---
// 应用 Albb 风格
.applyFontStyle(@fontStyle) when (@fontStyle = albb) {
    :root {
        --v-f-style: albb; // 设置为使用默认的字体风格
        --v-f-fm-title: var(--v-f-fm-title-albb);
        --v-f-fm-subtitle: var(--v-f-fm-subtitle-albb);
        --v-f-fm-h: var(--v-f-fm-h-albb);
        --v-f-fm-text: var(--v-f-fm-text-albb);
        --v-f-fm-bd: var(--v-f-fm-bd-albb);
        --v-f-fm-key: var(--v-f-fm-key-albb);
        --v-f-fm-num: var(--v-f-fm-num-albb);
        --v-f-fm-tag: var(--v-f-fm-tag-albb);
        --v-f-fm-code: var(--v-f-fm-code-albb);
        --v-f-w-bd: var(--v-f-w-bd-albb);
        --v-f-w-title: var(--v-f-w-title-albb);
        --v-f-w-text: var(--v-f-w-text-albb);
    }

    .genVlookNumber();
    .genVlookSansMono();

    .genVlookAlbb();
    .genVlookAlbbDtSans();
    .genVlookAlbbDtJinBu();
}

// ----------------------------------------
// 自定义字体 VLOOK Number
.genVlookNumber() {
    @font-face { // - Regular
        font-family: "VLOOK Number";
        font-weight: normal;
        src: local("Altinn-DIN Regular"),
            url("https://openfonts.pages.dev/Altinn-DIN-woff2/Altinn-DIN-Regular.woff2");
        unicode-range: @unicodeRangeForDigital;
    }
    @font-face { // - Bold
        font-family: "VLOOK Number";
        font-weight: bold;
        src: local("Altinn-DIN Bold"),
            url("https://openfonts.pages.dev/Altinn-DIN-woff2/Altinn-DIN-Bold.woff2");
        unicode-range: @unicodeRangeForDigital;
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Digital Sans
.genVlookDigitalSans() {
    @font-face { // - Regular
        font-family: "VLOOK Digital Sans";
        font-weight: normal;
        src: local("Noto Sans Mono Regular"),
            url("https://openfonts.pages.dev/NotoSansMono-woff2/NotoSansMono-Regular.woff2");
        unicode-range: @unicodeRangeForDigital;
    }
    @font-face { // - Bold
        font-family: "VLOOK Digital Sans";
        font-weight: bold;
        src: local("Noto Sans Mono Bold"),
            url("https://openfonts.pages.dev/NotoSansMono-woff2/NotoSansMono-Bold.woff2");
        unicode-range: @unicodeRangeForDigital;
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Sans
.genVlookSans() {
    @font-face { // - Regular
        font-family: "VLOOK Sans";
        font-weight: normal;
        src: local("Noto Sans CJK SC Regular"),
            url("https://openfonts.pages.dev/NotoSansCJKsc-woff2/NotoSansCJKsc-Regular.woff2");
    }
    @font-face { // - Bold
        font-family: "VLOOK Sans";
        font-weight: bold;
        src: local("Noto Sans CJK SC Bold"),
            url("https://openfonts.pages.dev/NotoSansCJKsc-woff2/NotoSansCJKsc-Bold.woff2");
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Sans Mono
.genVlookSansMono() {
    @font-face { // - Regular
        font-family: "VLOOK Sans Mono";
        font-weight: normal;
        src: local("Noto Sans Mono Regular"),
            url("https://openfonts.pages.dev/NotoSansMono-woff2/NotoSansMono-Regular.woff2");
    }
    @font-face { // - Bold
        font-family: "VLOOK Sans Mono";
        font-weight: bold;
        src: local("Noto Sans Mono Bold"),
            url("https://openfonts.pages.dev/NotoSansMono-woff2/NotoSansMono-Bold.woff2");
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Digital Serif
.genVlookDigitalSerif() {
    @font-face { // - Regular
        font-family: "VLOOK Digital Serif";
        font-weight: normal;
        src: local("Luxi Mono Regular"),
            url("https://openfonts.pages.dev/LuxiMono-woff2/LuxiMono-Regular.woff2");
        unicode-range: @unicodeRangeForDigital;
    }
    @font-face { // - Bold
        font-family: "VLOOK Digital Serif";
        font-weight: bold;
        src: local("Luxi Mono Bold"),
            url("https://openfonts.pages.dev/LuxiMono-woff2/LuxiMono-Bold.woff2");
        unicode-range: @unicodeRangeForDigital;
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Serif
.genVlookSerif() {
    @font-face { // - Medium
        font-family: "VLOOK Serif";
        font-weight: 500;
        src: local("Noto Serif CJK SC Medium"),
            url("https://openfonts.pages.dev/NotoSerifCJKsc-woff2/NotoSerifCJKsc-Medium.woff2");
    }
    @font-face { // - Black
        font-family: "VLOOK Serif";
        font-weight: 900;
        src: local("Noto Serif CJK SC Black"),
            url("https://openfonts.pages.dev/NotoSerifCJKsc-woff2/NotoSerifCJKsc-Black.woff2");
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Serif Mono
.genVlookSerifMono() {
    @font-face { // - Regular
        font-family: "VLOOK Serif Mono";
        font-weight: normal;
        src: local("Luxi Mono Regular"),
            url("https://openfonts.pages.dev/LuxiMono-woff2/LuxiMono-Regular.woff2");
    }
    @font-face { // - Medium
        font-family: "VLOOK Serif Mono";
        font-style: italic;
        font-weight: normal;
        src: local("Luxi Mono Oblique"),
            url("https://openfonts.pages.dev/LuxiMono-woff2/LuxiMono-Italic-Regular.woff2");
    }
    @font-face { // - Bold
        font-family: "VLOOK Serif Mono";
        font-weight: bold;
        src: local("Luxi Mono Bold"),
            url("https://openfonts.pages.dev/LuxiMono-woff2/LuxiMono-Bold.woff2");
    }
    @font-face { // - Black
        font-family: "VLOOK Serif Mono";
        font-style: italic;
        font-weight: bold;
        src: local("Luxi Mono Bold Oblique"),
            url("https://openfonts.pages.dev/LuxiMono-woff2/LuxiMono-Italic-Bold.woff2");
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Albb PuHui
.genVlookAlbb() {
    @font-face { // - Regular
        font-family: "VLOOK Albb";
        font-weight: normal;
        src: local("Alibaba PuHuiTi 3.0"),
            local("Alibaba PuHuiTi 2.0"),
            local("Alibaba PuHuiTi"),
            url("https://openfonts.pages.dev/AlibabaPuHuiTi-woff2/AlibabaPuHuiTi-Regular.woff2");
    }
    @font-face { // - Bold
        font-family: "VLOOK Albb";
        font-weight: bold;
        src: local("Alibaba PuHuiTi 3.0"),
            local("Alibaba PuHuiTi 2.0"),
            local("Alibaba PuHuiTi"),
            url("https://openfonts.pages.dev/AlibabaPuHuiTi-woff2/AlibabaPuHuiTi-Bold.woff2");
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Albb Sans
.genVlookAlbbDtSans() {
    @font-face { // - Regular
        font-family: "VLOOK Albb DT-Sans";
        font-weight: normal;
        src: local("DingTalk Sans"),
            url("https://openfonts.pages.dev/DingTalk-woff2/DingTalk-Sans.woff2");
    }
}

// ----------------------------------------
// 自定义字体 VLOOK Albb JinBu
.genVlookAlbbDtJinBu() {
    @font-face { // - Regular
        font-family: "VLOOK Albb DT-JinBu";
        font-weight: normal;
        src: local("DingTalk JinBuTi"),
            url("https://openfonts.pages.dev/DingTalk-woff2/DingTalk-JinBuTi.woff2");
    }
}

//=========================================
// 配套圆角风格集
:root {
    // ---
    // 小号圆角
    --v-r-b-small: 10px; // 标准圆角
    --v-r-s-small: 6px; // 标准圆角内的小圆角
    --v-r-t-small: 8px; // 表格圆角
    --v-r-si-small: calc(var(--v-r-t-small) + 1px); // 标准圆角内的小圆角
    --v-r-tag-small: 7px; // 标签圆角
    // --v-tag-small-radius-small: .25em; // 标签小圆角
    --v-r-c-small: 50%; // 半距圆角

    // ---
    // 大号圆角
    --v-r-b-big: 16px; // 标准圆角
    --v-r-s-big: 8px; // 标准圆角内的小圆角
    --v-r-t-big: 14px; // 表格圆角
    --v-r-si-big: calc(var(--v-r-t-big) + 1px); // 标准圆角内的小圆角
    --v-r-tag-big: 9px; // 标签圆角
    // --v-tag-small-radius-big: .25em; // 标签小圆角
    --v-r-c-big: 50%; // 半距圆角
}
// ---
// 应用叶子圆角
.applyThemeRadius(@themeRadius) when (@themeRadius = leaf) {
    .applyThemeRadius(big);
    :root {
        --v-r-b-xc: 0px;
        --v-r-s-xc: 0px;
        --v-r-t-xc: 0px;
        --v-r-si-xc: 0px;
        --v-r-tag-xc: 0px;
        --v-r-c-xc: 0px;
    }
}
// ---
// 应用大号圆角
.applyThemeRadius(@themeRadius) when (@themeRadius = big) {
    :root {
        --v-r-b: var(--v-r-b-big); // 标准圆角
        --v-r-s: var(--v-r-s-big); // 标准圆角内的小圆角
        --v-r-t: var(--v-r-t-big); // 表格圆角
        --v-r-si:calc(var(--v-r-t) - 1px); // 标准圆角内的小圆角
        --v-r-tag: var(--v-r-tag-big); // 标签圆角
        --v-r-c: var(--v-r-c-big); // 半距圆角
    }
    .setForNotLeaf();
}
// ---
// 应用小号圆角
.applyThemeRadius(@themeRadius) when (@themeRadius = small) {
    :root {
        --v-r-b: var(--v-r-b-small); // 标准圆角
        --v-r-s: var(--v-r-s-small); // 标准圆角内的小圆角
        --v-r-t: var(--v-r-t-small); // 表格圆角
        --v-r-si:calc(var(--v-r-t) - 1px); // 标准圆角内的小圆角
        --v-r-tag: var(--v-r-tag-small); // 标签圆角
        --v-r-c: var(--v-r-c-small); // 半距圆角
    }
    .setForNotLeaf();
}
// ---
// 应用无圆角
.applyThemeRadius(@themeRadius) when (@themeRadius = none) {
    :root {
        --v-r-b: 0; // 标准圆角
        --v-r-s: 0; // 标准圆角内的小圆角
        --v-r-t: 0; // 表格圆角
        --v-r-si: calc(var(--v-r-t) - 1px); // 标准圆角内的小圆角
        --v-r-tag: 0; // 标签圆角
        --v-r-c: 0; // 半距圆角
    }
    .setForNotLeaf();
}
// ---
// 为非 leaf 的圆角样式设置初始的 xc 值
.setForNotLeaf() {
    :root {
        // 对角值（叶子风格）
        --v-r-b-xc: var(--v-r-b);
        --v-r-s-xc: var(--v-r-s);
        --v-r-t-xc: var(--v-r-t);
        --v-r-si-xc: var(--v-r-si);
        --v-r-tag-xc: var(--v-r-tag);
        --v-r-c-xc: var(--v-r-c);
    }
}